/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package vista;

import control.Control;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;

public class PantallaPartida extends JFrame {

    private JPanel card;
    private PanelPreguntas panelPreguntas;
    private PanelEstadistica panelEstadistica;
    private PanelTablero panelTablero;
    private PanelPartidasIniciadas panelPartidasIniciadas;
    private PanelNuevaPartida nuevaPartida;

    private Control control;

    private JMenuBar mb;
    private JMenu salir;
    private JMenu ver;
    private JMenu configurar;
    private JMenuItem novaPartida;
    private JMenuItem estadisticas;

    public PantallaPartida(Control control) {
        this.control = control;

        this.init();
        this.setOpacity(1f);
        this.setVisible(true);
    }

    public void init() {
        //Paneles
        card = new JPanel();

        this.setTitle("Juego ATRIVIADOS");
        this.setIconImage(new ImageIcon(getClass().getResource("../imagenes/logo_pequeno.png")).getImage());

        panelPartidasIniciadas = new PanelPartidasIniciadas(control);
        panelPreguntas = new PanelPreguntas(control);
        panelTablero = new PanelTablero(control);
        nuevaPartida = new PanelNuevaPartida(control);
        panelEstadistica = new PanelEstadistica(control);

        //Ventana
        this.setSize(750, 550);
        this.setLayout(new BorderLayout());
        card.setLayout(new CardLayout());
        this.setLocationRelativeTo(null);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Posición de los paneles
        this.add("West", panelPartidasIniciadas);
        this.add("Center", card);

        //Añadir los paneles al panelCard
        card.add("PanelTablero", panelTablero);
        card.add("PanelPreguntas", panelPreguntas);
        card.add("NuevaPartida", nuevaPartida);
        card.add("Estadistica", panelEstadistica);

        //Configuración de la barra del menu
        mb = new JMenuBar();
        setJMenuBar(mb);

        salir = new JMenu("Salir");
        ver = new JMenu("Ver");
        configurar = new JMenu("Configurar");
        novaPartida = new JMenuItem("Nueva partida");
        estadisticas = new JMenuItem("Ver Estadisticas");

        ver.add(estadisticas);
        mb.add(salir);
        mb.add(ver);
        mb.add(configurar);
        configurar.add(novaPartida);

        //ActionListener de las acciones
        salir.addMouseListener(control);
        novaPartida.setActionCommand("nuevaPartida");
        novaPartida.addActionListener(control);
        estadisticas.setActionCommand("verEstadisticas");
        estadisticas.addActionListener(control);
    }

    public void cambiarPanel(String panel) {
        ((CardLayout) card.getLayout()).show(card, panel);
    }

    public PanelPreguntas getPanelPreguntas() {
        return panelPreguntas;
    }

    public PanelTablero getPanelTablero() {
        return panelTablero;
    }

    public PanelEstadistica getPanelEstadisica() {
        return panelEstadistica;
    }

    public PanelPartidasIniciadas getPanelPartidasIniciadas() {
        return panelPartidasIniciadas;
    }

    public PanelNuevaPartida getNuevaPartida() {
        return nuevaPartida;
    }

}
